A virtual assistant is a software service that performs tasks in response to user input (e.g., voice input or text input). The user input is a request for the virtual assistant to perform a particular task. A user request may take many different forms, such as a question (e.g., “What is the weather today?”), an instruction (e.g., “Tell me the weather today”), a sentence fragment (e.g., “today's weather”), or a single word (e.g., “weather”). Typically, a virtual assistant is not limited to performing tasks using a single software application. A virtual assistant may access application programming interfaces (API's) of various software applications and/or services, in order to perform tasks based on user requests. Depending on the specific implementation, examples of tasks that a virtual assistant may perform include, but are not limited to: scheduling a reminder; checking the weather; controlling music or video playback; launching an application; checking a calendar for appointments; scheduling an appointment; placing an audio and/or video call; checking voicemail; sending a text message; dictating a received text message or email; setting a timer; checking stocks; performing unit conversions (e.g., miles to kilometers); solving math problems; controlling camera functions; enabling and/or disabling hardware features (e.g., Bluetooth or wi-fi); searching the Internet; providing directions to a location; etc.
Some virtual assistants are included with consumer hardware, such as smartphones, tablets, televisions, speakers, etc. Examples of virtual assistants included with consumer hardware include, but are not limited to: Apple Siri®; Google Assistant™; and Amazon Alexa™. Alternatively or additionally, virtual assistants may be used in other contexts, such as call-in centers or online customer support. Many different kinds of virtual assistants exist.
In some cases, when a user submits a request to a virtual assist, the virtual assistant generates an audio response to the user request. The audio response may include information that was requested by the user, an acknowledgement that a requested task was completed, a request for the user to repeat or clarify the user input, or any other kind of audio response or combination thereof. In one example, a user asks a virtual assistant, “What is the weather tomorrow?” The virtual assistant accesses a weather service to obtain information about the next day's weather. In response to the user request, the virtual assistant responds, via a speaker, “The weather tomorrow will reach sixty-four degrees with thunderstorms.” In another example, a user tells a virtual assistant, “Set a timer for five minutes.” The virtual assistant sets a timer for five minutes. In response to the user request, the virtual assistant responds, via a speaker, “The timer has been set.” In another example, a user submits a request to a virtual assistant containing only the word “text.” The virtual assistant responds, via a speaker, “To whom should I send your text message?” Based on the virtual assistant's response, the user may provide additional input, such as the name of an individual in the user's digital address book. In response to the additional input, the virtual assistant may generate an additional audio response. A virtual assistant may provide many different kinds of audio responses to many different kinds of user requests.
When a virtual assistant provides an audio response to a user request, the response may be too quiet or too loud, i.e., the volume level of the response may be too low or too high for the context in which the response is provided. The volume level of the virtual assistant's response may be a last-used volume. For example, a user may have set the volume to a level that is appropriate for a ringtone volume, media playback, or some other use. A user-set volume level that is appropriate for one use may not also be appropriate for a virtual assistant's response. Alternatively or additionally, the last-used volume may have been set in a different environmental context. A user-set volume level that is appropriate for one context may not also be appropriate for another context. In one example, a user submits a request to a virtual assistant while walking along a busy street. The virtual assistant's response is too quiet and the user is unable to discern the response. In another example, a user submits a request to a virtual assistant while putting a baby to bed. The virtual assistant's response is too loud and wakes the baby. Many different situations exist in which a virtual assistant's response may be too quiet or too loud for the context in which the response is provided. In general, a virtual assistant's response that is too quiet may be indiscernible, and a virtual assistant's response that is too loud may be disruptive.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.